
https://leetcode.cn/problems/minimum-number-of-frogs-croaking/description/?envType=list&envId=f0vje8qi
//class Solution {
//public:
//    int minNumberOfFrogs(string croakOfFrogs) {
//
//        string s = "croak";
//        int n = s.size();
//        int hash[5] = { 0 };
//        unordered_map<char, int> index;
//
//        for (int i = 0; i < n; i++) {
//            index[s[i]] = i;
//        }
//
//        for (auto& x : croakOfFrogs) {
//            if (x == 'c') {
//                if (hash[n - 1] != 0) {
//                    hash[n - 1]--;
//                }
//                hash[0]++;
//            }
//            else {
//                int i = index[x];
//                if (hash[i - 1] == 0) {
//                    return -1;
//                }
//                hash[i]++;
//                hash[i - 1]--;
//            }
//        }
//
//        for (int i = 0; i < n - 1; i++) {
//            if (hash[i] != 0) {
//                return -1;
//            }
//        }
//
//        return hash[n - 1];
//    }
//};

https://leetcode.cn/problems/count-and-say/description/?envType=list&envId=f0vje8qi
//class Solution {
//public:
//    string countAndSay(int n) {
//        string ret = "1";
//        for (int i = 1; i < n; i++) {
//            int len = ret.size();
//            string tmp;
//            for (int l = 0, r = 0; r < len;) {
//                while (r < len && ret[l] == ret[r]) {
//                    r++;
//                }
//                tmp += to_string(r - l);
//                tmp += ret[l];
//                l = r;
//            }
//            ret = tmp;
//        }
//        return ret;
//    }
//};